package cn.iocoder.yudao.module.written.exam.dal.dataobject.llm;

/**
 * 大模型事件类型枚举
 *
 * @author 芋道源码
 */
public enum LlmEventTypeEnum {

    /**
     * 工作流开始事件
     */
    WORKFLOW_STARTED("workflow_started", "工作流开始"),

    /**
     * 消息事件
     */
    MESSAGE("message", "消息"),

    /**
     * 工作流完成事件
     */
    WORKFLOW_FINISHED("workflow_finished", "工作流完成"),

    /**
     * 节点完成事件
     */
    NODE_FINISHED("node_finished", "节点完成"),

    /**
     * 消息结束事件
     */
    MESSAGE_END("message_end", "消息结束");

    /**
     * 事件类型
     */
    private final String type;

    /**
     * 事件描述
     */
    private final String description;

    LlmEventTypeEnum(String type, String description) {
        this.type = type;
        this.description = description;
    }

    public String getType() {
        return type;
    }

    public String getDescription() {
        return description;
    }

    /**
     * 根据事件类型字符串获取枚举
     *
     * @param type 事件类型字符串
     * @return 事件类型枚举
     */
    public static LlmEventTypeEnum fromType(String type) {
        for (LlmEventTypeEnum eventType : LlmEventTypeEnum.values()) {
            if (eventType.getType().equals(type)) {
                return eventType;
            }
        }
        throw new IllegalArgumentException("未知的事件类型: " + type);
    }
} 